package arithmetic;

/**
 * @program: javaLearn
 * @description: 递归寻找最大值 折半思想
 * @author: renhai
 * @Date ：2022/3/3 20:37
 **/
public class GetMax {
    public static void main(String[] args) {

    }

    public static int getMax(int[] arr) {
        return process(arr, 0, arr.length - 1);
    }

    public static int process(int[] arr, int L, int R) {
        if (L == R) { //arr[L...R]范围上只有一个数，直接返回
            return arr[L];
        }
        int mid = L + ((R - L) >> 1);//中点的计算
        int leftMax = process(arr, L, mid);
        int rightMax = process(arr, mid + 1, R);
        return Math.max(leftMax, rightMax);
    }
}
